The present invention relates to a transaction manager for, in particular, providing an on-line billing service in a robust and stream-lined solution.
When conducting electronic business across, for example, the Internet, a problem arises from the fact that for any transaction a merchant and their customers may be situated in many different combinations of countries. Each combination requires a decision in relation to the tax, if any, to be applied to a transaction. It will also be seen that when the tax for any country is to be applied, the merchant must be able to take cognisance of the different tax regimes, according to the type of product or service, for different countries.
It will be seen that when a merchant is conducting business across the Internet, that it may be possible for many more customer transactions to be carried out than in a traditional commercial environment. It is critical that the processing of any transaction request consumes the minimum of processing resources and is as responsive as possible to the customer, otherwise a loss of custom may result.
It is an object of the present invention to provide a transaction manager capable of supporting billing services in a multi-currency environment.
Accordingly, the present invention provides a transaction manager, said manager including:
a dispatcher connected to an input queue, one or more output queues and one or more processing module queues;
input data handling means, responsive to transaction requests received from one or more clients, said transaction requests including a service code, indicative of the transaction type, and data specific to a transaction, said input data handling means being adapted to place said transaction requests on said input queue;
one or more processing modules, the or each processing module associated with a respective processing module queue and being adapted to process processing module queue entries and place any result of said processing on said input queue;
output data handling means connected to the or each output queue for forwarding output queue entries to respective clients;
wherein said dispatcher is responsive to a service code to place a transaction request on one or more of said processing module queues, and said dispatcher is responsive to a result to place said result on a selected one of the or each output queue.
The dispatcher of the transaction manager enables processing of transaction requests to be carried out by separate processing modules. Processing modules may operate in parallel to reduce processing time, for example, a denied parties list check can be carried out at the same time as a credit card authorization. Modules may operate individually to reduce the amount of processing to a minimum, for example, a VAT (value added tax) calculation can be carried out to provide a quote to a customer before a customer decides to finally purchase a product or avail of a service. Only if the offer is accepted does a credit card authorization need to be provided. Processing can be carried out in stages, for example, a check can be made of customer details whose output can be returned to act as an input for further processing modules.